package edu.nuc.ahm.juc;


// 基本的卖票例子

/*
* 真正的多线程开发， 公司中的开发 降低耦合性
* 线程就是一个单独的资源类 ,没有附属的操作
* 1. 属性 方法
* */
public class SaleTicketDemo01 {
    public static void main(String[] args) {
        // 并发 ： 多线程操作同一个资源类
        Ticket ticket = new Ticket();

        new Thread(
                ()->{
                    for (int i = 0; i < 60; i++) {
                        ticket.sale();
                    }
                }
        ).start();

        new Thread(
                ()->{
                    for (int i = 0; i < 60; i++) {
                        ticket.sale();
                    }
                }
        ).start();

        new Thread(
                ()->{
                    for (int i = 0; i < 60; i++) {
                        ticket.sale();
                    }
                }
        ).start();

    }
}
// OOP 编程
class Ticket{
    // 属性 方法
    private int num = 50;

    // 卖票
    public synchronized void sale(){
        if (num>0){
            System.out.println(Thread.currentThread().getName()+"卖出了"+ (num--)+"票，剩余："+num);
        }
    }


}


class  MyThread implements Runnable{

    @Override
    public void run() {

    }
}

